package tp.pr5.mv.instructions.jump;

import tp.pr5.mv.Instruction;
import tp.pr5.mv.Memory;
import tp.pr5.mv.OperandStack;
import tp.pr5.mv.ProgramCounter;
import tp.pr5.mv.inout.InMethod;
import tp.pr5.mv.inout.OutMethod;
import tp.pr5.mv.instructions.OneParamInstructions;
import tp.pr5.mv.traps.MVTrap;

public abstract class Jumps extends OneParamInstructions {
	
	// La clase Jumps implementará las instrucciones que hacen un salto directo a una dir de pc.
	
	public void execute ( OperandStack stack, Memory mem, ProgramCounter pc, InMethod inMethod, OutMethod outMethod) throws MVTrap {
		
		DirectJump( pc );
		
	}
	
	public abstract void DirectJump ( ProgramCounter pc );  // En el método DirectJump introducimos el pc que vamos a modificar con el parámetro n.

	public abstract Instruction create ( int par );
	
}
